1. Field of the Invention
The present invention relates to address resolution protocols for devices in communication networks, and more particularly, to systems that assign a network address using a physical address resolution protocol.
2. Description of Related Art
Transmission Control Protocol/Internet Protocol (TCP/IP) is a widely accepted international standard for describing communications on the Internet. In TCP/IP, network communications are divided into 4 layers, including application, transport, internet, and host-to-network layers.
An IP address is assigned to each host system or device operating within the Internet. The IP address includes a network address portion and a host address portion. The network address portion identifies a network within which the system resides, and the host address portion uniquely identifies the system in that network.
The combination of network address and host address is unique, so that no two systems have the same IP address. All IP addresses are 32 bits long and are usually written in dotted decimal notation, e.g., 255.255.255.255. These IP addresses are then used in the source address and destination address fields of IP packets.
In many cases, the network number in the IP address refers to a network on the Internet, such as a local area network (LAN), Internet Service Provider (ISP), intranet, etc. These networks may communicate with systems therein using other access protocols, such as Ethernet (IEEE Standard 802.3), dialup point-of-presence (POP), etc. These access protocols are typically broken down into the data link layer and physical layer, with the data link layer being further broken down into a media access control (MAC) layer and a logical link layer.
Systems such as personal computers, workstations, minicomputers, and mainframe computers attached to the networks each have a distinct lower level protocol identifier known as the physical network address or MAC address. Data forwarded to a destination system on the network under these lower level protocols contain the destination system MAC address, or other physical network address, as a destination address. Data forwarded from a source system on the network contain the source system MAC address, or other physical network address, as a source address. These systems thus communicate by encapsulating additional protocols within the lower layer protocols.
Systems routing data in an IP network rely on the network address portion of the IP address in a packet to find the network of the destination system. Once the network of the destination is located, the data is forwarded to that network and the host address portion is relied upon by the network to assign a MAC address for the destination system.
In order to communicate in this system, a network must first obtain its network address. Network numbers are assigned by the InterNIC (Internet Network Information Center) to avoid conflicts. Further, every system or device in a network must be assigned its own unique host address. Host addresses are usually assigned by network administrators and manually configured by a technician. Generally, the host addresses are associated with a hardware address for the system, such as an Ethernet address.
Every system or device that interfaces to a network usually has a unique hardware address. The hardware address is not location dependent and is globally unique. In general, the hardware address is set when a network interface is fabricated. Thus, when a network device (with network address x) wants to talk to another device (with network address y), the network device x must resolve network address y to a hardware address. The hardware address may be the address of the network interface card of device y or it may be the hardware address of the network interface of a gateway connecting device x to device y.
When a new system or device is initially attached to a network, that device must be given an IP address that maps to its unique hardware address. For systems or devices with consoles, the IP address can be keyed into a configuration screen. Systems or devices without consoles often have a serial port for attaching a terminal to perform this configuration operation. Alternatively, protocols exist that allow the new device to determine its IP address.
An Address Resolution Protocol (ARP), defined in RFC 826, provides a mechanism for determining IP addresses. For example, a first host having Ethernet address E1 broadcasts a packet onto an Ethernet LAN requesting a hardware address associated with an IP address. The broadcast is received by every system on the Ethernet LAN and each one checks its IP address for a match. When a second host at Ethernet address E2 identifies the IP address as its own, it responds to the broadcast with its Ethernet address E2. In this way, the first host learns that the requested IP address is associated with the second host having Ethernet address E2.
Various optimizations are possible to make ARP more efficient. To start with, once a system has run ARP, it may cache the result in case it needs to contact the same system shortly. Next time, it will find the mapping in its own cache, thus eliminating the need for a second broadcast.
Yet another optimization is to have every system broadcast its mapping when it boots. This broadcast is generally done in the form of an ARP looking for its own IP address. There should not be a response, but a side effect of the broadcast is to make any entry in every system's ARP cache. If a response does arrive, two systems have been assigned the same IP address, so the broadcasting system should inform the system manager and not complete its boot operation.
ARP solves the problem of finding out which Ethernet address corresponds to a given IP address. However, sometimes the reverse problem needs to be solved, i.e., given an Ethernet address, determining the corresponding IP address.
A reverse address resolution protocol (RARP), defined in RFC 903, has been developed to identify Ethernet addresses associated with IP addresses. As a result, the RARP allows a system without a configured IP address to obtain an IP address from a remote server. The system broadcasts a request and waits until a RARP server responds. In the request, the system must provide its physical network address (MAC address) to uniquely identify itself, allowing the server to map it into an IP address.
For example, the protocol allows a newly-booted system to broadcast its Ethernet address and request the corresponding IP address in response. The RARP server sees this request, looks up the Ethernet address in its configuration files, and sends back the corresponding IP address.
Using RARP is better than embedding an IP address in the memory image of the device, because it allows the same memory image to be used on all devices. If the IP address were buried inside the memory image, each device would need its own unique memory image.
The RARP protocol works fine, so long as a RARP server is available and is aware of the physical network address of the devices being added to the network. In order to find out the physical network address, all of the systems being added to the network must be passed through the RARP server, so that the address can be read from these systems, or a local technician must read the physical network address from the system and manually update the RARP server.
This process makes connecting a new device to a network difficult. Further, this process of physically reading the physical network address from the box is prone to human errors. Such addresses are typically very long (Ethernet MAC addresses are 48 bits long), and can be misread or typed in erroneously.
Another disadvantage of RARP is that it uses a destination address of all 1's (limited broadcasting) to reach the RARP server. However, such broadcasts are not forwarded by routers, so a RARP server is needed on each network.
To get around the problems associated with RARP, an alternative bootstrap protocol (BOOTP) has been developed, which is defined in RFCs 951, 1048, and 1084. Unlike RARP, BOOTP uses user datagram protocol (UDP) messages for connectionless transmission, which are forwarded over routers. It also provides a system with additional information, including the IP address of the file server holding the memory image, the IP address of the default router, and the subnet mask to use.
The Dynamic Host Configuration Protocol (DFCP) extends BOOTP in two ways. First, DHCP allows a system to acquire all the configuration information it needs in a single message. For example, in addition to an IP address, a DHCP message can contain a subnet mask. Second, DHCP provides a dynamic address allocation mechanism. Whenever a new device connects to the network, it contacts a DHCP server that maintains a set of IP addresses. The DHCP server chooses one of the addresses and then allocates the address to the device.
Notwithstanding these various techniques for assigning IP addresses to devices, there is still a need in the art for simplified mechanism for assigning IP addresses to devices. Moreover, there is a need in the art for techniques that can be performed by unskilled personnel. In addition, there is a need in the art for techniques that can be performed automatically without human intervention.